<?php

	/**
	 * 获取登录页面的cookie
	 *
	 * @param $login_url   登录页地址
	 * @param $cookie_file 存放cookie的文件
	 * @param
	 *
	 * @throws
	 *
	 */
	function cookie ($login_url, $cookie_file) {
		//cookie文件存放位置（自定义）
		$ch = curl_init();
		curl_setopt($ch, CURLOPT_URL, $login_url);
		curl_setopt($ch, CURLOPT_HEADER, 0);
		curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
		curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file);
		curl_exec($ch);
		curl_close($ch);
	}

	/**
	 * 获取验证码
	 *
	 * @param $verify_url    验证码地址
	 * @param $cookie_file   存放cookie的文件
	 * @param
	 *
	 * @throws
	 *
	 */
	function verification ($verify_url, $cookie_file, $image = './verify/verifyCode.png') {
		$ch = curl_init();
		curl_setopt($ch, CURLOPT_URL, $verify_url);
		curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file);
		curl_setopt($ch, CURLOPT_HEADER, 0);
		curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
		$verify_img = curl_exec($ch);
		curl_close($ch);
		$fp = fopen($image, 'w'); //把抓取到的图片文件写入本地图片文件保存
		fwrite($fp, $verify_img);
		fclose($fp);
	}

	/**
	 * 登录
	 *
	 * @param $post_url    登录表单提交地址
	 * @param $params      登录参数
	 * @param $cookie_file cookie文件
	 * @param
	 *
	 * @throws
	 *
	 */
	function login ($post_url, $params, $cookie_file) {
		$post = http_build_query($params);
		$ch = curl_init();
		curl_setopt($ch, CURLOPT_URL, $post_url);
		curl_setopt($ch, CURLOPT_HEADER, false);
		curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
		curl_setopt($ch, CURLOPT_POSTFIELDS, $post); //提交方式为post
		curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file);
		curl_exec($ch);
		curl_close($ch);
	}

	/**
	 * 获取指定页面的数据
	 *
	 * @param $data_url     数据页面地址
	 * @param $cookie_file  存放cookie文件
	 *
	 * @param
	 *
	 * @return bool|string  数据页面的数据
	 * @throws
	 *
	 */
	function capture ($data_url, $cookie_file) {
		$ch = curl_init();
		curl_setopt($ch, CURLOPT_URL, $data_url);
		curl_setopt($ch, CURLOPT_HEADER, false);
		curl_setopt($ch, CURLOPT_HEADER, 0);
		curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);
		curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file);
		$data = curl_exec($ch);
		curl_close($ch);

		return $data;
	}

	#获取登录页面的cookie信息,并保存到文件中
	//登录页地址
	$login_url = 'https://www.cndns.com/members/signin.aspx';
	//存储cookie的文件
	$cookie_file = dirname(__FILE__) . "/pic.cookie";
	//获取cookie并保存cookie
	cookie($login_url, $cookie_file);

	#获取登录页面的验证码
	//验证码地址
	$verify_url = 'https://www.cndns.com/common/GenerateCheckCode.aspx?t=sign&temp=0.41724427417018695';
	//1.将获取的验证码存放在  ./verify/verifyCode.png中
	//2.这里将图片展示在表单中,表单中有户名,密码,验证码,这些数据让操作这手动输入
	verification($verify_url, $cookie_file);


	#登录
	//通过上描述的表单提交,获得用户名,密码,验证码具体字段需要具体对待
	$params = ['username' => 'zhangsan', 'password' => 12345, 'code' => '123456'];
	//登录表单提交地址
	$post_url = 'https://www.cndns.com/Ajax/Login.ashx';
	login($post_url, $params, $cookie_file);

	#抓取页面信息
	//需要抓取页面所在地址
	$data_url = 'https://www.chengmi.cn';

	$data = capture($data, $cookie_file);
	//需要分析返回的结果,通过字符串函数正则匹配等从中获取到自己想要的数据
	//如果返回的数据是图片,则可使用题中所述第三方图片识别来识别分析最终返回的数据


